package cn.fl.customer.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.customer.vo.FilFinanceProVO;
import cn.cmm.base.framework.utils.CollectionUtils;
import fl.customer.facade.customer.dto.FilFinanceProDTO;

/**
 * @Description: 资信财报---利润及利润分配表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class FilFinanceProVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto FilFinanceProDTO
	 * @return FilFinanceProVO
	 */
	public static FilFinanceProVO toVO(FilFinanceProDTO dto) {
		FilFinanceProVO  vo = null;
		if (dto != null) { 
			vo = new FilFinanceProVO();
			vo.setId(dto.getId());
			vo.setBelongDate(dto.getBelongDate());//所属时间
			vo.setReporttype(dto.getReporttype());//报表类型
			vo.setReportsubtype(dto.getReportsubtype());//报表类型细分
			vo.setAuditinstitute(dto.getAuditinstitute());//审计事务所名称
			vo.setAuditstaff(dto.getAuditstaff());//审计人员名称
			vo.setAuditime(dto.getAuditime());//审计时间
			vo.setMainIncome(dto.getMainIncome());//一、主营业务收入
			vo.setMainCost(dto.getMainCost());//减:主营业务成本
			vo.setMainTaxes(dto.getMainTaxes());//主营业务税金及附加
			vo.setMainOperCost(dto.getMainOperCost());//减:营业费用
			vo.setMainManFee(dto.getMainManFee());//管理费用
			vo.setMainFinnaFee(dto.getMainFinnaFee());//财务费用
			vo.setDevalueAssets(dto.getDevalueAssets());//资产减值损失
			vo.setFairProfit(dto.getFairProfit());//公允价值变动净收益
			vo.setInvestIncome(dto.getInvestIncome());//投资净收益
			vo.setInvestVentures(dto.getInvestVentures());//对联营企业和合营企业的投资收益
			vo.setOperProfit(dto.getOperProfit());//三、营业利润
			vo.setOperIncome(dto.getOperIncome());//营业外收入
			vo.setOperExpenditure(dto.getOperExpenditure());//减:营业外支出
			vo.setAssetsLoss(dto.getAssetsLoss());//非流动资产损失
			vo.setProfitTotal(dto.getProfitTotal());//利润总额
			vo.setIncomeTax(dto.getIncomeTax());//减:所得税
			vo.setProfitNet(dto.getProfitNet());//五、净利润
			vo.setEarnShare(dto.getEarnShare());//基本每股收益
			vo.setDilutEarnShare(dto.getDilutEarnShare());//稀释每股收益
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setCstId(dto.getCstId());//客户ID

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo FilFinanceProVO
	 * @return FilFinanceProDTO
	 */
	public static FilFinanceProDTO toDTO(FilFinanceProVO vo) {
		FilFinanceProDTO dto = null;
		if (vo != null) {
			dto = new FilFinanceProDTO();
			dto.setId(vo.getId());
			dto.setBelongDate(vo.getBelongDate());//所属时间
			dto.setReporttype(vo.getReporttype());//报表类型
			dto.setReportsubtype(vo.getReportsubtype());//报表类型细分
			dto.setAuditinstitute(vo.getAuditinstitute());//审计事务所名称
			dto.setAuditstaff(vo.getAuditstaff());//审计人员名称
			dto.setAuditime(vo.getAuditime());//审计时间
			dto.setMainIncome(vo.getMainIncome());//一、主营业务收入
			dto.setMainCost(vo.getMainCost());//减:主营业务成本
			dto.setMainTaxes(vo.getMainTaxes());//主营业务税金及附加
			dto.setMainOperCost(vo.getMainOperCost());//减:营业费用
			dto.setMainManFee(vo.getMainManFee());//管理费用
			dto.setMainFinnaFee(vo.getMainFinnaFee());//财务费用
			dto.setDevalueAssets(vo.getDevalueAssets());//资产减值损失
			dto.setFairProfit(vo.getFairProfit());//公允价值变动净收益
			dto.setInvestIncome(vo.getInvestIncome());//投资净收益
			dto.setInvestVentures(vo.getInvestVentures());//对联营企业和合营企业的投资收益
			dto.setOperProfit(vo.getOperProfit());//三、营业利润
			dto.setOperIncome(vo.getOperIncome());//营业外收入
			dto.setOperExpenditure(vo.getOperExpenditure());//减:营业外支出
			dto.setAssetsLoss(vo.getAssetsLoss());//非流动资产损失
			dto.setProfitTotal(vo.getProfitTotal());//利润总额
			dto.setIncomeTax(vo.getIncomeTax());//减:所得税
			dto.setProfitNet(vo.getProfitNet());//五、净利润
			dto.setEarnShare(vo.getEarnShare());//基本每股收益
			dto.setDilutEarnShare(vo.getDilutEarnShare());//稀释每股收益
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setCstId(vo.getCstId());//客户ID

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<FilFinanceProDTO>
	 * @return List<FilFinanceProVO>
	 */
	public static List<FilFinanceProVO> toVOList(List<FilFinanceProDTO> list) {
		List<FilFinanceProVO>  voList = new ArrayList<FilFinanceProVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FilFinanceProDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<FilFinanceProVO>
	 * @return List<FilFinanceProDTO>
	 */
	public static List<FilFinanceProDTO> toDTOList(List<FilFinanceProVO> list) {
		List<FilFinanceProDTO>  dtoList = new ArrayList<FilFinanceProDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FilFinanceProVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
